Conventional local area network architectures use network interface devices containing media access controller operating according to half-duplex or full-duplex Ethernet (ANSI/IEEE Standard 802.3) protocols, such as 10BASE-T or 100BASE-TX: The physical layer tranceiver (PHY) attached to the media access controller (MAC) at one end of the network medium communicates with the PHY at the other end of the medium to negotiate the link capabilities, such as speed and duplex mode, and status (link up or down).
Correct operation of the network requires that the controller be informed of the link status and capabilities. Newer operating systems require the network interface controller to autonomously determine the link status, without assistance of software. Consequently, the controller contains hardware that reads and writes the necessary registers in the PHY to determine the link status and capabilities.
Recent extensions of the 802.3 standard and related standards allow ethernet MAC's to be used with PHYs that communicated over other media, such as conventional in-home telephone wires or via radio. Telephone line and wireless media characteristics can change rapidly over time. These changes are sensed by the PHY and the current status stored in registers with the PHY. In some cases, these changes require the MAC or host software to change operating modes. The interface between the PHY to signal that a change has occurred. Therefore, it is necessary for the associated PHY registers to be frequently polled by the controller. Other extensions of the 802.3 standard add new capabilities, such as the “pause ability”. Information about these capabilities is stored in new PHY registers or in previously unused bits in existing PHY registers.
It is not possible to anticipate all possible extensions of the standard when a particular network interface controller is designed, nor is it always practical to include all the necessary polling hardware to cover all possible applications of the controller. Any necessary polling not done by the controller hardware must be done by host software. This software polling increases the size and complexity of the software. In addition, it imposes a burden on the host processor. In other words, the host processor has to devote valuable resources to check relying on software to obtain this other information is the overhead associated with the host processor obtaining the information. In other words, the host processor has to devote valuable resources to check on this other information, even if it is not changed, instead of devoting its resources to other tasks. Since the information may not change between instances where the software is checking on the network conditions, this process is extremely wasteful.